package com.coffee.order.api.inquire.service;

import com.coffee.core.entity.Page;
import com.coffee.core.entity.PagerInfo;
import com.coffee.core.exception.BusinessException;
import com.coffee.order.api.inquire.query.InquireOrderTestingQuery;
import com.coffee.order.api.inquire.req.CreateTestingOrderReq;
import com.coffee.order.api.inquire.req.InquireOrderTestingReq;
import com.coffee.order.api.inquire.result.InquireOrderTestingResult;
import com.coffee.order.api.inquire.result.OrderListResult;
import com.coffee.order.api.sku.result.OrderResult;
import com.coffee.sku.api.inquire.result.InquireSkuTestingMessageResult;

import java.util.List;
import java.util.Map;
import java.util.Set;


public interface InquireOrderTestingService {

    Page<InquireOrderTestingResult> getPager(InquireOrderTestingQuery param, PagerInfo pr);

    //获取列表
    Page<InquireOrderTestingResult> getPagerByReq(InquireOrderTestingReq param, PagerInfo pr);

    Integer count(InquireOrderTestingQuery param);

    //获取详情
    InquireOrderTestingResult getDetailById(Integer id, Integer supplierId);

    InquireOrderTestingResult getDetailByIdAndMerchantId(Integer id, Integer merchantId);

    List<InquireOrderTestingResult> getList(InquireOrderTestingQuery param, PagerInfo pr);

    List<InquireOrderTestingResult> getList(InquireOrderTestingQuery param);

    List<InquireOrderTestingResult> getList();

    void delete(Integer id);

    Map<Integer, InquireOrderTestingResult> getItemMap(Set<Integer> idSet);

    Map<Integer, InquireOrderTestingResult> getItemMap();

    OrderResult createTestingOrder(CreateTestingOrderReq req) throws BusinessException;

    void cancelOrder(Integer id,Integer merchantId) throws BusinessException;

    void uploadReport(Integer id, String cover, Integer supplierId) throws BusinessException;

    void uploadReportByMerchantId(Integer id, String cover, Integer merchantId) throws BusinessException;

    List<InquireSkuTestingMessageResult> getInquireSkuTestingMessageResult(Integer inquireOrderId) throws BusinessException;


}